### 功能描述

快速执行脚本

### 请求参数

#### Body参数

| 字段                  | 类型      | 必选 | 描述                                                                                                                                                      |
|---------------------|---------|----|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| bk_scope_type       | string  | 是  | 资源范围类型。可选值: biz - 业务，biz_set - 业务集                                                                                                                      |
| bk_scope_id         | string  | 是  | 资源范围ID, 与bk_scope_type对应, 表示业务ID或者业务集ID                                                                                                                 |
| script_version_id   | long    | 否  | 脚本版本ID。当script_version_id不为空的时候，使用script_version_id对应的脚本版本                                                                                              |
| script_id           | string  | 否  | 脚本ID。当传入script_id，且script_version_id为空的时候，使用脚本的上线版本                                                                                                     |
| script_content      | string  | 否  | 脚本内容Base64。如果不存在script_version_id和script_id,那么使用script_content。优先级：script_version_id>script_id>script_content                                           |
| task_name           | string  | 否  | 自定义作业名称，长度不可超过512字符                                                                                                                                     |
| script_param        | string  | 否  | 脚本参数Base64。注意：1.如果有多个参数，比如&#34;param1 param2&#34;这种，需要对&#34;param1 param2&#34;整体进行base64编码，而不是对每个参数进行base64编码再拼接起来。2.非敏感参数编码前长度不能超过64K，敏感参数编码前长度不能超过47K |
| timeout             | int     | 否  | 脚本执行超时时间，秒。默认7200，取值范围1-259200                                                                                                                          |
| account_alias       | string  | 否  | 执行账号别名。与account_id必须存在一个。当同时存在account_alias和account_id时，account_id优先。                                                                                   |
| account_id          | long    | 否  | 执行账号ID。与account_alias必须存在一个。当同时存在account_alias和account_id时，account_id优先。                                                                                |
| param_sensitive     | boolean | 否  | 敏感参数将会在执行详情页面上隐藏，默认false                                                                                                                                |
| script_language     | int     | 否  | 脚本语言：1 - shell, 2 - bat, 3 - perl, 4 - python, 5 - powershell。当使用script_content传入自定义脚本的时候，需要指定script_language                                           |
| windows_interpreter | string  | 否  | 自定义Windows解释器路径，必须以.exe结尾，最大长度260字符                                                                                                                     |
| execute_target      | object  | 否  | 执行目标，见execute_target定义                                                                                                                                  |
| callback_url        | string  | 否  | 回调URL，当任务执行完成后，JOB会调用该URL告知任务执行结果。回调协议参考callback_protocol组件文档                                                                                           |
| rolling_config      | object  | 否  | 滚动配置，见rolling_config定义                                                                                                                                  |
| start_task          | boolean | 否  | 是否启动任务，默认true，如果是false可以通过operate_job_instance接口启动任务                                                                                                    |
| host_password_list  | array   | 否  | windows主机密码，见host_password_list定义。该字段默认情况下无需填写，默认使用在作业平台中配置的指定账号对应密码，只有在各主机账号相同密码不同的情况下才需要填写。                                                           |

##### execute_target

{% include '_generic_v4_execute_target.md.j2' %}

**注：** 主机和容器不能够混合执行

{% include '../_generic_rolling_config.md.j2' %}

{% include '../_generic_host_password_list.md.j2' %}

### 请求参数示例

- POST

在主机上执行脚本：
```json
{
    "bk_scope_type": "biz",
    "bk_scope_id": "1",
    "script_version_id": 1,
    "script_content": "ZWNobyAkMQ==",
    "script_param": "aGVsbG8=",
    "timeout": 1000,
    "account_id": 1000,
    "param_sensitive": false,
    "script_language": 1,
    "execute_target": {
        "dynamic_group_list": [
            {
                "id": "asdo8gojhasdfskft7pr5"
            }
        ],
        "host_list": [
            {
                "ip": "10.0.0.1",
                "bk_cloud_id": 0
            },
            {
                "ip": "10.0.0.2",
                "bk_cloud_id": 0
            }
        ],
        "topo_node_list": [
            {
                "id": 1000,
                "node_type": "module"
            }
        ]
    }
}
```

在容器上执行脚本：
```json
{
    "bk_scope_type": "biz",
    "bk_scope_id": "1",
    "script_content": "ZWNobyAkMQ==",
    "script_param": "aGVsbG8=",
    "timeout": 1000,
    "account_id": 1000,
    "param_sensitive": false,
    "script_language": 1,
    "execute_target": {
        "kube_container_filters": [
            {
                "kube_cluster_filter": {
                    "cluster_uid_list": ["BCS-K8S-00001"]
                },
                "kube_namespace_filter": {
                    "namespace_name_list": ["bkjob"]
                },
                "kube_workload_filter": {
                    "kind": "deployment",
                    "workload_name_list": ["bk-job-execute"]
                },
                "kube_container_prop_filter": {
                    "container_name_list": ["job-execute"]
                }
            }
        ]
    }
}
```

### 返回结果示例

#### 失败示例

{% include '_generic_v4_error_resp.md.j2' %}

#### 成功示例

```json
# http status=200
{
    "data": {
        "job_instance_name": "API Quick execution script1",
        "job_instance_id": 10000,
        "step_instance_id": 10001
    }
}
```

### 返回结果参数说明

{% include '_generic_v4_response.md.j2' %}

#### data

{% include '../_generic_response_job_instance.md.j2' %}

